package com.dxj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dxj.domain.User;
import com.dxj.request.LoginDTO;
import com.dxj.request.UserDTO;
import com.dxj.request.UserPageDTO;
import com.dxj.response.PageResultVo;
import com.dxj.response.R;
import com.dxj.response.UserInfoVo;

/**
 * @author dxj
 * @Description 用户服务类
 * @date 2024/7/28 14:37
 */
public interface IUserService extends IService<User> {
    /**
     * 用户登录
     *
     * @param loginDTO
     * @return
     */
    String login(LoginDTO loginDTO);

    /***
     * 退出登录
     * @return
     */
    void removeToken();

    /**
     * 用户注册
     *
     * @param registerDTO
     */

    R register(UserDTO registerDTO);

    /**
     * 用户信息获取通过id
     * @param id
     * @return
     */

    R userInfo(Long id);

    /**
     * 更新用户信息
     * @param userDTO
     * @return
     */
    R userUpdate(UserDTO userDTO);

    /**
     * 用户删除
     * @param id
     * @return
     */

    R userDelete(Long id);

    /**
     * 用户信息分页
     * @param userPageDTO
     * @return
     */
    R<PageResultVo<UserInfoVo>> userList(UserPageDTO userPageDTO);
}
